#include<stdio.h>
#include<signal.h>
#include<unistd.h>
typedef void (*sighandler_t)(int);

void hander(int arg)
{
	printf("sig is kill\n");
}

void printfsig(sigset_t* sig_pend)
{
	int i=0;
	for(i=1;i<32;i++)
	{
		if(sigismember(sig_pend,i))
		{
			printf("1");
		}
		else
		{
			printf("0");
		}
	}
	printf("\n");
}

int main()
{
    sigset_t sig_set;
	sigset_t sig_old;
	sigset_t sig_pend;
	sighandler_t p_handler=hander;
	sigemptyset(&sig_set);
	sigaddset(&sig_set,SIGINT);
	signal(SIGINT,p_handler);
	sigprocmask(SIG_BLOCK,&sig_set,&sig_old);
	int i=0;
	while(i++>=0)
	{
		sigpending(&sig_pend);
		printfsig(&sig_pend);
		sleep(1);
		if(i==5)
		{
			sigprocmask(SIG_SETMASK,&sig_old,NULL);
		}
	}
	return 0;

}
